package py.com.alfa.escriba.gui.controller.object.referencia;

import java.util.ArrayList;
import java.util.List;

import org.springframework.context.ApplicationContext;

import py.com.alfa.escriba.gui.config.EscribaGUIApplicationContextProvider;
import py.com.alfa.escriba.gui.controller.view.Permissions;
import py.com.alfa.escriba.gui.controller.view.View;
import py.com.alfa.escriba.gui.controller.view.ViewManager;
import py.com.alfa.escriba.gui.controller.view.referencia.DistritosViewContext;
import py.com.alfa.escriba.gui.controller.view.referencia.DistritosViewFragment;
import py.com.alfa.escriba.gui.dto.admin.DepartamentoDTO;
import py.com.alfa.escriba.gui.dto.admin.DistritoDTO;
import py.com.alfa.escriba.gui.services.Services;


public class DistritosControllerObject {

	private List<DistritoDTO> distritos;
	private DistritoDTO distrito;
	private DepartamentoDTO departamento;
	private ViewManager viewManager;
	private String titulo = "";
	
	public DistritosControllerObject() {
		ApplicationContext ctx = EscribaGUIApplicationContextProvider.getContext();
		this.setDistritos(new ArrayList<DistritoDTO>());
		this.setViewManager((ViewManager) ctx.getBean(Services.VIEW_MANAGER));
		this.getViewManager().registerContext(View.DISTRITOS, new DistritosViewContext());
	}

	public DistritosViewFragment view(){
		return (DistritosViewFragment) this.getContext().getViewFragment();
	}

	public DistritosViewContext getContext(){
		return (DistritosViewContext) getViewManager().getContext(View.DISTRITOS);
	}
	
	public Permissions getPermissions(){
		return getViewManager().getPermissions();
	}

	public List<DistritoDTO> getDistritos() {
		return this.distritos;
	}

	public void setDistritos(List<DistritoDTO> distritos) {
		this.distritos = distritos;
	}

	public DistritoDTO getDistrito() {
		if ( this.distrito == null ) {
			this.distrito = new DistritoDTO();
		}
		return this.distrito;
	}

	public void setDistrito(DistritoDTO distrito) {
		this.distrito = distrito;
	}

	
	public DepartamentoDTO getDepartamento() {
		return departamento;
	}

	public void setDepartamento(DepartamentoDTO departamento) {
		this.departamento = departamento;
	}

	public ViewManager getViewManager() {
		return viewManager;
	}

	public void setViewManager(ViewManager viewManager) {
		this.viewManager = viewManager;
	}

	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

}
